﻿<Serializable()> Public Class KOArtemis
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenEnde)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefüllstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefüllstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenEnde)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "ARTEMIS"
        Armee = Armeen.BD.ToString
        Musik = "Artemis"
        Bild = GetBildID()
        Select Case My.Settings.CommanderWarsGameMoodus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.KOS(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.KOS(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.KOS(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.KOS(Bild).KOBeschreibung.Gaben
                KORange = 6
            Case CommanderWarsGameModi.CommanderWars2
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.KOS(Bild).KOBeschreibung.Gaben
                KORange = 6
            Case Else
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.KOS(Bild).KOBeschreibung.Gaben
        End Select
        KOname = Objektverwalter.KOS(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If OhneFunktion = False Then
            CreateGebäude("KRISTALL")
            HealBuildings(200)
            BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
        End If
        GebäudeZusatzSchaden = 3
        GabeEingesetzt()
    End Sub

    Public Overrides Sub KOLaden()
        'Das ist eine gute Fähigkeit
        GebäudeZusatzSchaden = 2
        BonusEinheiten = New StringUndZahl() {New StringUndZahl("BAUPANZER", -0.8#)}
        If My.Settings.CommanderWarsGameMoodus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafür sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub

    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If My.Settings.CommanderWarsGameMoodus = CommanderWarsGameModi.AdvanceWars Then
            If OhneFunktion = False Then
                CreateGebäude("KRISTALL")
                HealBuildings(200)
                BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GebäudeZusatzSchaden = 3
            GabeEingesetzt()
        Else
            If OhneFunktion = False Then
                CreateGebäude("KRISTALL")
                CreateGebäude("LASER")
                HealBuildings(500)
                GebäudeNochmalSchießen()
                BackbufferSpiel.AddAnimation("SCREENFLASH", 0, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GebäudeZusatzSchaden = 4
            GabeEingesetzt()
        End If
    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

<Serializable()> Public Class KOBeschreibungArtemis
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Artemis"
        Fein = "Statik"
        Nein = "Fehlkonstruktionen"
        Beschreibung = New String() {"Ein Architekt ohne", "Gleichen. Der alles", "baut was es gibt."}
        Stil = New String() {"Gebäude richten mehr Schaden an,", "wie normal seine Baupanzer,", "sind sehr billig."}
        Gabebeschreibung = New String() {"Er bekommt einen Kristall", "und Gebäude bekommen", "200 Leben."}
        SpezialgabeBeschreibung = New String() {"Er bekommt 1 Kristalle", "und 1 Laser und" + "Gebäude bekommen", "500 Leben und sie", "können alle Feuern."}
        GabeKosten = 3
        Spezialgabekosten = 5
        Gaben = New String() {"Baupläne", "Geheime Baupläne"}
        Synergie = New Decimal() {1.5#}
        KONamen = New String() {"RACHEL"}
        Doppelgabenamen = New String() {"Hoffnungsschimmer"}
        Gabesätze = New String() {"Siehst du diese Gebäude!" _
                                 , "Meine Einheiten erhalten Verstärkung!" _
                                 , "Ich glaube eure Maschinen wurden falsch konstruiert!" _
                                 , "Meine Gebäude sind unzerstörbar!" _
                                 , "Die Strebe dort die da. Das Gebäude steht." _
                                 , "Ich glaube eure Besetzungen sind eine Fehlkonstruktion"}
        Siegsätze = New String() {"Nur wer Gebäude hat kann gewinnen." _
                                , "Tja, eurer Kartenhaus ist zusammen gefallen." _
                                , "Meine Strategie hatte ein solides Fundament!"}
        Tauschsätze = New String() {"Ich werde das wieder herrichten" _
                                    , "Was? Wir haben keine Gebäude du Idiot!"}
        Doppelgabesätze = New DoppelGabesatz() {}
    End Sub

End Class
